Network-based purchase and distribution of media in accordance with priorities

ABSTRACT

Methods and systems for prioritizing use of resources (e.g., network resources) at a client machine (e.g., computer) are disclosed. By prioritizing use of resources, user satisfaction is enhanced. The client machine typically executes a software program that permits a user of the client machine to browse, preview, purchase, or download media. The media can, for example, be audio, video, or image data. More particularly, in the case of a client machine that operates at least one application program that provides media-based actions, the methods and systems manage the use of limited network resources (e.g., network connection bandwidth) at the client machine so that different media-based actions are performed at different priority levels. For example, at the client machine, a second type of media-based action can be issued while a first type of media-based action is being processed. When the second type of media-based action has a higher priority level than the first type of media-based action, then the processing of the first type of media-based action can be suspended so that processing of the second type of media-based action is given preference.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of U.S. Provisional PatentApplication No. 60/465,410, filed Apr. 25, 2003, and entitled “METHODAND SYSTEM FOR SECURE NETWORK-BASED DISTRIBUTION OF MEDIA”, and which ishereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to performance of media-basedoperations on a computer and, more particularly, to prioritization ofmedia-based operations to be performed on a computer.

[0004] 2. Description of the Related Art

[0005] Traditionally, music has been purchased at music stores or musicdepartments of larger stores. A consumer will visit the music store ordepartment and manually browse for albums or compact discs (CDs) ofinterest. Often, the music in the music store or department iscategorized by genre, and then indexed by artist. For example, genre caninclude rock, country, pop, soul, jazz, etc. After the consumer selectsan album or CD of interest, the consumer proceeds to a check-outregister to pay for the album or CD being purchased.

[0006] In recent years music delivery or distribution over the Internethas become popular. Due to the advances in efficient file formats, suchas MP3 and MPEG4, the size of media files have become small enough tomake their download via the Internet practical. Also, technologicaladvances have led to higher-speed Internet connections and lower cost ofmemory. The combination of these advances make downloading media files,such as for music and videos, manageable and not too time consuming.Normally, client-side programs assist a user with interaction via theInternet with a server computer that stores available media files. Inthis way, a user of a client-side program is able to browse, preview,purchase and/or download available media files over the Internet. Theseoperations can be referred to as media operations.

[0007] Given that media operations are bandwidth-intensive, a user maydesire to perform several media operations concurrently. Unfortunately,however, the user can experience delays if earlier media operations areslow to complete. For example, the download of a media file to a clientcan take at least several minutes, and during this period, the user maywant to perform another media action (e.g., browse). However, thesubsequent media operation must await the completion of the downloadoperation. Delays of this sort are bothersome to users and tend toreduce user satisfaction.

[0008] Thus, there is a need for media operations to be processed in amanner that enhances user satisfaction.

SUMMARY OF THE INVENTION

[0009] Broadly speaking, the invention relates to prioritizing use ofresources (e.g., network resources) at a client machine (e.g., computer)so that user satisfaction is enhanced. The client machine typicallyexecutes a software program that permits a user of the client machine tobrowse, preview, purchase, or download media. The media can, forexample, be audio, video, or image data. More particularly, in the caseof a client machine that operates at least one application program thatprovides media-based actions, the invention manages the use of limitednetwork resources (e.g., network connection bandwidth) at the clientmachine so that different media-based actions are performed at differentpriority levels. For example, at the client machine, a second type ofmedia-based action can be issued while a first type of media-basedaction is being processed. When the second type of media-based actionhas a higher priority level than the first type of media-based action,then the processing of the first type of media-based action can besuspended so that processing of the second type of media-based actioncan be given preference.

[0010] The invention can be implemented in numerous ways, including as amethod, system, device, apparatus, graphical user interface, or computerreadable medium. Several embodiments of the invention are discussedbelow.

[0011] As a method for managing tasks performed on a computer capable ofcoupling over a network to a network-based media server, one embodimentof the invention includes at least the acts of: receiving tasks to beperformed from at least one client application operating on thecomputer, the tasks pertaining to one or more different media-basedactions, and the tasks involving interaction with the media server overthe network; activating an operation at the computer to respond to eachof the tasks; and coordinating performance of the activated operationsin accordance with priority levels associated with the differentmedia-based actions of the tasks, the different ones of the differentmedia-based actions having different priority levels.

[0012] As a computer readable medium including at least computer programcode for managing tasks performed on a computer capable of coupling overa network to a network-based media server, one embodiment of theinvention includes at least: computer program code for receiving tasksto be performed from at least one client application operating on thecomputer, the tasks pertain to one or more different media-basedactions, and the tasks involving interaction with the media server overthe network; and computer program code for coordinating performance ofthe tasks in accordance with priority levels associated with thedifferent media-based actions of the tasks, the different ones of thedifferent media-based actions having different priority levels.

[0013] As a computer for presenting media to its user, one embodiment ofthe invention includes at least: a client media player program operableto enable the user to play, browse, preview, purchase or downloadpresent media items for the benefit of the user; a network interfacethat permits the client media application program to interact with amedia commerce server that stores or manages a plurality of media itemsthat can be browsed, previewed, purchased or downloaded; and a taskmanager that manages performance of at least browse, preview, purchaseor download operations by assigning priority levels to each of thebrowse, preview, purchase or download operations, and managingperformance of the browse, preview, purchase or download operations inaccordance with the assigned priority levels.

[0014] Other aspects and advantages of the invention will becomeapparent from the following detailed description taken in conjunctionwith the accompanying drawings which illustrate, by way of example, theprinciples of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements, andin which:

[0016]FIG. 1 is a flow diagram of an execution management processaccording to one embodiment of the invention.

[0017]FIGS. 2A and 2B are flow diagrams of an operation schedulingprocess according to one embodiment of the invention.

[0018]FIG. 3 is a flow diagram of a priority update process according toone embodiment of the invention.

[0019]FIG. 4 is a diagram depicting an exemplary thread executionaccording to one embodiment of the invention.

[0020]FIG. 5 is a diagram of a software stack.

[0021]FIG. 6 is a task priority scheduling system according to oneembodiment of the invention.

[0022]FIG. 7 is a block diagram of a media purchase system according toone embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0023] The invention relates to prioritizing use of resources (e.g.,network resources) at a client machine (e.g., computer) so that usersatisfaction is enhanced. The client machine typically executes asoftware program that permits a user of the client machine to browse,preview, purchase, or download media. The media can, for example, beaudio, video, or image data. More particularly, in the case of a clientmachine that operates at least one application program that providesmedia-based actions, the invention manages the use of limited networkresources (e.g., network connection bandwidth) at the client machine sothat different media-based actions are performed at different prioritylevels. For example, at the client machine, a second type of media-basedaction can be issued while a first type of media-based action is beingprocessed. When the second type of media-based action has a higherpriority level than the first type of media-based action, then theprocessing of the first type of media-based action can be suspended sothat processing of the second type of media-based action can be givenpreference.

[0024] Embodiments of the invention are discussed below with referenceto FIGS. 1-7. However, those skilled in the art will readily appreciatethat the detailed description given herein with respect to these figuresis for explanatory purposes as the invention extends beyond theselimited embodiments.

[0025]FIG. 1 is a flow diagram of an execution management process 100according to one embodiment of the invention. The execution managementprocess 100 can be part of a client program operating on a clientmachine. The client program can pertain to an application program or anoperating system program.

[0026] The execution management process 100 initially receives 102 tasksto be executed on a client machine (client computer). The tasks pertainto different media-based actions that can be carried out on the clientmachine. The different media-based actions are often induced by a userthat interacts with the client machine. Typically, the client machinecouples to a server computer through a network (such as the Internet).The different media-based actions often require interaction with theserver computer.

[0027] After the tasks for the different media-based actions have beenreceived 102, an operation is activated 104 to respond to each of thetasks. In other words, for each task that is received, an operation isactivated 104. Since the client machine can operate in a multi-threadedfashion, it is able to support processing of a large number ofoperations. In one implementation, an operation is carried out at theclient machine by one or more threads. Nevertheless, the operations needto be managed such that the responsiveness of the client machine to thevarious tasks is appropriate. In one embodiment, a user can set thepriority levels for different media-based actions in accordance withtheir desires. In another embodiment, the client machine or clientprogram can provide predetermined priorities to the various differentmedia-based actions.

[0028] In any case, after the operations have been activated 104, theexecution management process 100 coordinates 106 performance of theactivated operations in accordance with priority levels associated withthe different media-based actions. In this regard, certain of theoperations can be suspended while other operations are performed so thatthe priority levels for the different media-based actions can beenforced. Once all the operations have been completed, the executionmanagement process 100 is complete and ends. However, it should be notedthat the execution management process 100 could also return to repeatthe operation 102 and subsequent operations so that subsequentlyreceived tasks for different media-based actions can be similarlyprocessed.

[0029]FIGS. 2A and 2B are flow diagrams of an operation schedulingprocess 200 according to one embodiment of the invention. The operationscheduling process 200 is, for example, performed on a client computer.The operation scheduling process 200 begins with a decision 202 thatdetermines whether a new media task has been received. When the decision202 determines that a new media task has been received, the operationscheduling process 200 continues. In other words, the operationscheduling process 200 can be deemed invoked whenever a new media taskis received. In one embodiment, the tasks pertain to media-basedactions. Examples of media-based actions include at least: previewingmusic, browsing music, purchasing music, and downloading music. Theseexemplary media-based actions normally would require the client computerto interact over a network with a server computer, which serves as amedia server. Downloading is the most bandwidth intensive of theseexemplary media-based actions, though previewing a media item caninvolve streaming a small segment of the media file and can thus also bebandwidth-intensive. Purchasing does not require too much bandwidth butcan be time-intensive for authorization of payments, etc. Browsing maybe bandwidth-intensive if the webpage presented to the client computerincludes complex graphics.

[0030] Once the decision 202 determines that a new media task has beenreceived, the type of media task is identified 204. Then, the priorityfor the type of media task is determined 206. In one implementation, atable can store a priority indication for each of a plurality ofdifferent types of media tasks. Such a table can be associated with theparticular client machine, a single user, or a plurality of users. Afterthe priority for the type of media task has been determined 206, anoperation for a response to the media task is opened 208. Then, apriority is assigned 210 to the operation opened based on the determinedpriority.

[0031] At this point, the operation can proceed to execute in order toproduce the response to the media task. However, its performance isdependent upon other performing other operations within the environmentof the client computer (and perhaps also responsiveness of the servercomputer). In one implementation, the environment of the client computeris a multi-threaded environment. A decision 212 determines whether anyexisting operations that are activated have lower priorities. When thedecision 212 determines that there are existing operation with lowerpriorities, then the one or more existing operation that have a lowerpriority are suspended 214. When the decision 212 determines that thereare no existing operations with lower priorities, the operation 214 canbe bypassed.

[0032] Following the operation 214 or its being bypassed, a decision 216determines whether the task has been completed. The task can, forexample, be considered completed when the corresponding operation oroperations complete or when a response (or results) of the task havebeen presented at the client computer. When the decision 216 determinesthat the task has not completed, the operation scheduling process 200awaits the completion of the task. Once the decision 216 determines thatthe task has been completed, the operation that produced the response isclosed 218. Thereafter, the one or more existing operations (if any)that were suspended are resumed 220. Following the operation 220, theoperation scheduling process 200 is complete and ends.

[0033]FIG. 3 is a flow diagram of a priority update process 300according to one embodiment of the invention. The priority updateprocess 300 is a process performed at a client computer in response to arequest, namely, a priority setting request from a client program orclient machine. The priority update process 300 begins with a decision302 that determines whether a priority setting request has beenreceived. The priority setting request could be initiated by the clientprogram itself (i.e., automatically) or by a user interacting with theclient program or client machine (i.e., user-initiated). When thedecision 302 determines that a priority setting request has not beenreceived, then the priority update process 300 awaits such a request.Once the decision 302 determines that a priority setting request hasbeen received, then the priority levels for the user or the clientprogram are updated 304. Here, the priority setting request can containinformation that specifies one or more priority levels to be utilized.To the extent priority levels were previously established, these newlyprovided priority levels operate to update the previous priority levels.In any case, after the priority levels have been updated 304, theupdated priority levels are stored 306. Here, the updated prioritylevels are stored 306 to the client computer. Following the operation306, the priority update process 300 is complete and ends.

[0034] As noted above, for each task to be performed, an operation canbe invoked, In one embodiment, the computer system provides amulti-threaded environment and each operation can be implemented as oneor more threads.

[0035]FIG. 4 is a diagram depicting an exemplary thread execution 400according to one embodiment of the invention. The exemplary threadexecution 400 illustrates operation of a series of threads in responseto a series of tasks to be performed. At time To task A is requested ata client computer. The client computer opens thread A to satisfy task A.At time T₀+x, while the thread A is executing, the client computerreceives task B. The client computer then opens thread B to process thetask B. Additionally, it is determined at the client computer that thethread B is a higher priority thread than thread A. Consequently, threadA is suspended, thereby allowing thread B to execute with greaterperformance.

[0036] According to the exemplary thread execution, the thread Bcompletes while thread A is suspended. Then, thread B is closed. At thispoint, the higher priority thread B is no longer present, so the threadA is resumed from its suspended state. The thread A then continues toexecute. However, at time T₀+y, the client computer receives task C. Theclient computer then opens thread C to process the task C. Again, it isdetermined that thread C is the higher priority than thread A. As aresult, thread A is again suspended. Then, thread C executes to itscompletion. Thereafter, thread C closes, and thread A resumes.Subsequently, thread A completes and thread A is then closed as itsassociated task has fully completed.

[0037] The tasks A, B and C presented in the exemplary thread execution400 illustrated in FIG. 4 can pertain to the same or different tasks.Typically, the tasks are of different types and thus have differentpriority levels. These priority levels are utilized in determining whichof the activated threads are to be suspended so as to give priority ofexecution to other threads. Still further, it should be understood thatthe tasks are received at arbitrary times at the client computer andthus various combinations or interactions of active threads can occur atthe client computer. The priority levels are utilized so as to providethe user and/or client application with the opportunity to control theresponsiveness of the client computer to certain types of requestsversus other types of requests.

[0038]FIG. 5 is a diagram of a software stack 500. The software stack500 is a basic representative stack of software components that would beprovided at a client computer. The software stack 500 includes a networkinterface 502 that couples to the physical network, an operating system504, and an application 506. Typically, there are multiple applications506 on the software stack 500. The task execution management associatedwith the invention can be implemented at the application 506 or,alternatively, at the operating system 504. Typically, the operatingsystem 504 supports multi-threaded operations, and the application is506 multi-threaded or multi-threaded safe. The advantage of implementingthe task execution management at the operating system 504 is that themanagement would be able to be cross-application, whereas whenimplemented at the application 506, the management would only beintra-application.

[0039]FIG. 6 is a task priority scheduling system 600 according to oneembodiment of the invention. The task priority scheduling system 600 is,for example, implemented at a client computer. The task priorityscheduling system 600 includes a task manager 602. The task manager 602operates to schedule which of the task that are to be performed based onpriority levels. The task manager 602 can activate various differenttypes of media-based actions, through activation of operations (e.g.,threads) at the client computer. Namely, the task manager can activate abrowse task 604, a preview task 606, a purchase task 608 and/or adownload task 610. For example, the client computer might receive a taskfor a browse operation, and thus the task manager 602 would activate thebrowse task 604 instance for processing the browse operation. Similarly,if the client computer were to receive a task for a preview operation,then the task manager 602 would activate a preview task 606 instance sothat a preview media item (e.g., small audio file) could be received bythe requester. The task manager 602 would interact with a prioritiestable 612 to assist with the management of the execution of the multipletasks that are typically operating. In this regard, each of thedifferent types of tasks would be provided with a priority level in thepriorities table 612. The task manager 602 could then read the prioritylevel for the associated type of action and cause other lower priorityactions to be suspended as appropriate. As a result, the system providesgreater execution performance (and thus greater responsiveness) tohigher priority actions.

[0040] One example of a priorities table suitable for used as thepriorities table 612 illustrated in FIG. 6 is as follows: Media-basedaction Priority Browse 8 Preview 10 Purchase 6 Download 4

[0041] where “Browse,” “Preview,” “Purchase,” and “Download” areexemplary media-based actions that can be processed by operations. Inthis example, the priority ratings for these actions are be “8,” “10,”“6,” and “4,” respectively. These priority ratings are provided on a1-10 scale, with “10” being highest priority. Various other ratingschemes can be used so long as the relative priority of the differentactions can be represented.

[0042] The invention can be used in conjunction with a system and methodfor purchasing media items over a network. A potential purchaser (i.e.,user) can search and browse through numerous media items that areavailable for purchase. A potential purchaser can then purchase a mediaitem with great ease. Upon purchasing a media item, the content for themedia item can be downloaded over the network to the purchaser. Thecontent for the media item is then encrypted for the purchaser's use andstored on the purchaser's machine. Thereafter, the purchaser can makeuse of the media item (e.g., play the media item). However, the use ofthe media item can still be limited. For example, only up to apredetermined number user machines can be authorized to use the mediaitem, or only up to a predetermined number of compact disc copies can bemade of a group or collection of media items (e.g., a playlist).

[0043]FIG. 7 is a block diagram of a media purchase system 700 accordingto one embodiment of the invention. The media purchase system 700includes a media commerce server 702. The media commerce server 702coordinates review and/or purchase of media items through on-linetransactions. On-line transactions to purchase media items is alsoreferred to as electronic commerce (e-commerce). The media purchasesystem 700 also includes a client 704. Typically, the media purchasesystem 700 would include a plurality of different clients 704. Eachclient 704 includes a media player 708. The media player 708 is anapplication program (e.g., software application) that operates on theclient 704, which is a computing device. The client 704 is coupled tothe media commerce server 702 through a data network 706. Hence, any ofthe clients 704 can interact with the media commerce server 702 toreview and/or purchase media items. In one embodiment, the data network706 includes at least a portion of the Internet. The clients 704 canvary with application but generally are computing devices that havememory storage. Often, the clients 704 are personal computers or othercomputing devices that are capable of storing and presenting media totheir users.

[0044] The media purchase system 700 also includes a media storageserver 710 and a media store 712. The media storage server 710represents a remote storage server that couples to the data network 706.The media store 712 provides mass storage of the numerous media itemsthat are available for purchase via the media purchase system 700. Oncepurchased, the media items can be accessed from the media store 712 overthe data network 706 by way of the media storage server 710.

[0045] More particularly, the media purchase system 700 allows a user ofthe client 704 to utilize the media player 708 to browse, search or sortthrough a plurality of media items that can be purchased from the mediacommerce server 702. The media player 708 may also allow the user topreview a media clip of the media items. In the event that the user ofthe media player 708 desires to purchase a particular media item, theuser (via the media player 708) and the media commerce server 702 engagein an on-line commerce transaction in which the user pays for accessrights to the particular media item. In one embodiment, a credit cardassociated with the user is credited for the purchase amount of theparticular media item.

[0046] In the media purchase system 700 shown in FIG. 7, the media itemsare stored in the media store 712 and retrieved via the media storageserver 710. Hence, the media commerce server 702 need not burden itsresources to deliver any of the media items that may be purchased to theclient 704. Instead, on purchasing a particular media item, the mediacommerce server 702 sends download information to the media player 708on the client 704. The download information can then be used by themedia player 708 (and the client 704) to retrieve the media content forthe particular media item by interacting with the media storage server710 through the data network 706. In this regard, the media storageserver 710 obtains the media content corresponding to the particularmedia item from the media store 712 and downloads such content throughthe data network 706 to the client 704. The downloaded media content canthen be stored on the client 704. In one embodiment, the downloadedmedia content is encrypted as received at the client 704 but isdecrypted and then re-encrypted before persistent storage on the client704. Thereafter, the media player 708 can present (e.g., play) the mediacontent at the client 704.

[0047] The connections through the data network 706 between the mediacommerce server 702, the client 704 and the media storage server 710 canbe through secure connections, such as Secure Sockets Layer (SSL).Further, the media content is re-encrypted prior to storage at theclient 704 such that downloaded media content is not stored in theclear, but is instead stored in an encrypted manner.

[0048] The media items can pertain to audio items (e.g., audio files orsongs, such as for music), video items (e.g., video files or movies), orimage items (e.g., photos).

[0049] The invention is preferably implemented by software, but can alsobe implemented in hardware or a combination of hardware and software.The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data which can thereafter be read by acomputer system. Examples of the computer readable medium includeread-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape,optical data storage devices, and carrier waves. The computer readablemedium can also be distributed over network-coupled computer systems sothat the computer readable code is stored and executed in a distributedfashion.

[0050] The advantages of the invention are numerous. Differentembodiments or implementations may, but need not, yield one or more ofthe following advantages. One advantage of the invention usersatisfaction is improved by making client-side media programs moreresponsive to users. Another advantage of the invention is that softwaredevelopers can control responsiveness of client-side media programsbased on different media-based actions to be performed. Still anotheradvantage of the invention is that network bandwidth is able to beutilized in a manner that renders client-side media programs moreresponsive or user friendly.

[0051] The many features and advantages of the present invention areapparent from the written description and, thus, it is intended by theappended claims to cover all such features and advantages of theinvention. Further, since numerous modifications and changes willreadily occur to those skilled in the art, the invention should not belimited to the exact construction and operation as illustrated anddescribed. Hence, all suitable modifications and equivalents may beresorted to as falling within the scope of the invention.

What is claimed is:
 1. A method for managing tasks performed on acomputer capable of coupling over a network to a network-based mediaserver, said method comprising: receiving tasks to be performed from atleast one client application operating on the computer, the taskspertaining to one or more different media-based actions, and the tasksinvolving interaction with the media server over the network; activatingan operation at the computer to respond to each of the tasks; andcoordinating performance of the activated operations in accordance withpriority levels associated with the different media-based actions of thetasks, the different ones of the different media-based actions havingdifferent priority levels.
 2. A method as recited in claim 1, whereinthe priority levels are provided on a per-computer basis or a per-userbasis.
 3. A method as recited in claim 1, wherein said coordinatingoperates to coordinate the execution of the activated operationspertaining to a particular user of the computer based on the prioritylevels.
 4. A method as recited in claim 1, wherein the priority levelsassociated with the different media-based actions are user-modifiable.5. A method as recited in claim 1, wherein the different media-basedactions include at least: previewing media, browsing media, purchasingmedia, and downloading media.
 6. A method as recited in claim 5, whereinthe media includes at least one of audio, video or images.
 7. A methodas recited in claim 6, wherein the at least one client application is aclient media player program.
 8. A method as recited in claim 1, whereinthe at least one client applications is a client media player program.9. A method as recited in claim 1, wherein the media includes at leastaudio, and wherein the different media-based actions of the media serverinclude at least: previewing music, browsing music, purchasing music,and downloading music.
 10. A method as recited in claim 9, wherein thepriority levels associated with the different media-based actions areuser-modifiable.
 11. A computer readable medium including at leastcomputer program code for managing tasks performed on a computer capableof coupling over a network to a network-based media server, saidcomputer readable medium comprising: computer program code for receivingtasks to be performed from at least one client application operating onthe computer, the tasks pertain to one or more different media-basedactions, and the tasks involving interaction with the media server overthe network; and computer program code for coordinating performance ofthe tasks in accordance with priority levels associated with thedifferent media-based actions of the tasks, the different ones of thedifferent media-based actions having different priority levels.
 12. Acomputer readable medium as recited in claim 11, wherein the prioritylevels are provided on a per-computer basis or a per-user basis.
 13. Acomputer readable medium as recited in claim 11, wherein said computerprogram code for coordinating operates to coordinate the performance ofthe tasks pertaining to a particular user of the computer based on thepriority levels.
 14. A computer readable medium as recited in claim 11,wherein the priority levels associated with the different media-basedactions are user-modifiable.
 15. A computer readable medium as recitedin claim 11, wherein the different media-based actions include at least:previewing media, browsing media, purchasing media, and downloadingmedia.
 16. A computer readable medium as recited in claim 15, whereinthe media includes at least one of audio, video or images.
 17. Acomputer readable medium as recited in claim 16, wherein the at leastone client application is a client media player program.
 18. A computerreadable medium as recited in claim 11, wherein the at least one clientapplication is a client media player program.
 19. A computer readablemedium as recited in claim 11, wherein the media includes at leastaudio, and wherein the different media-based actions of the media serverinclude at least: previewing music, browsing music, purchasing music,and downloading music.
 20. A computer readable medium as recited inclaim 19, wherein the priority levels associated with the differentmedia-based actions are user-modifiable.
 21. A computer readable mediumas recited in claim 11, wherein said computer program code for receivingand said computer program code for coordinating are part the at leastone application program.
 22. A computer readable medium as recited inclaim 11, wherein said computer program code for receiving and saidcomputer program code for coordinating are part an operating systemprogram that operates on the computer.
 23. A computer for presentingmedia to its user, said computer comprising: at least one client mediaplayer program operable to enable the user to play, browse, preview,purchase or download present media items for the benefit of the user; anetwork interface that permits said client media application program tointeract with a media commerce server that stores or manages a pluralityof media items that can be browsed, previewed, purchased or downloaded;and a task manager that manages performance of at least browse, preview,purchase or download operations by assigning priority levels to each ofthe browse, preview, purchase or download operations, and managingperformance of the browse, preview, purchase or download operations inaccordance with the assigned priority levels.
 24. A computer as recitedin claim 23, wherein each of the browse, preview, purchase or downloadoperations are executed by a different processing, and wherein said taskmanager causes the processing to be performed in accordance with theassigned priority levels.